Java中的List、Set和Map的各自特征及使用场景

您所在的位置:网站首页 javalist set map区别 Java中的List、Set和Map的各自特征及使用场景

Java中的List、Set和Map的各自特征及使用场景

2024-04-10 18:31| 来源: 网络整理| 查看: 265

Java中的集合分为单列集合Collection和双列集合Map。 先通过这张图看看Collection和Map的各自体系。Set和Map

首先看单列集合Collection中的List及Set的各自特征。

List(有序,可重复)             ArrayList                 底层数据结构是数组,查询快,增删慢                 线程不安全,效率高             Vector                 底层数据结构是数组,查询快,增删慢                 线程安全,效率低             LinkedList                 底层数据结构是链表,查询慢,增删快                 线程不安全,效率高 Set(无序,唯一)             HashSet                 底层数据结构是哈希表。                              LinkedHashSet                     底层数据结构由链表和哈希表组成。                     由链表保证元素有序。                     由哈希表保证元素唯一。             TreeSet                 底层数据结构是红黑树。(是一种自平衡的二叉树)                     根据比较的返回值是否是0来决定保证元素唯一性                     两种排序方式                         自然排序(元素具备比较性)                             让元素所属的类实现Comparable接口                         比较器排序(集合具备比较性)                             让集合接收一个Comparator的实现类对象

接下来是双列集合Map的特征

Map(双列集合)         注:Map集合的数据结构仅仅针对键有效,与值无关。存储的是键值对形式的元素,键唯一,值可重复。                 HashMap             底层数据结构是哈希表。线程不安全,效率高                 哈希表依赖两个方法:hashCode()和equals()                 执行顺序:                     首先判断hashCode()值是否相同                         是:继续执行equals(),看其返回值                             是true:说明元素重复,不添加                             是false:就直接添加到集合                         否:就直接添加到集合                 最终:                     自动生成hashCode()和equals()即可             LinkedHashMap                 底层数据结构由链表和哈希表组成。                     由链表保证元素有序。                     由哈希表保证元素唯一。         Hashtable             底层数据结构是哈希表。线程安全,效率低                 哈希表依赖两个方法:hashCode()和equals()                 执行顺序:                     首先判断hashCode()值是否相同                         是:继续执行equals(),看其返回值                             是true:说明元素重复,不添加                             是false:就直接添加到集合                         否:就直接添加到集合                 最终:                     自动生成hashCode()和equals()即可         TreeMap             底层数据结构是红黑树。(是一种自平衡的二叉树)                 根据比较的返回值是否是0来决定保证元素唯一性                     两种排序方式                         自然排序(元素具备比较性)                             让元素所属的类实现Comparable接口                         比较器排序(集合具备比较性)                             让集合接收一个Comparator的实现类对象

那么到底什么时候需要用什么样的集合呢? 画一张图总结下

无论是单列或者双列集合,死记每种方法的书写没有太大必要。常用的方法无非是增删改查这几种。API文档里面应有尽有。掌握熟悉每种集合的特性才能用起来得心应手。 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3